#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//void Print_arr(int arr[], int sz)
//{
//	int* p = arr;
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", *(p + i));
//	}
//
//}
//
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	Print_arr(arr, sz);
//	return 0;
//}

//void Bubble_sort(int arr[], int n)
//{
//	int i = 0;
//	for (i = 0; i < n-1; i++)
//	{
//		int flag = 1;
//		int j = 0;
//		for (j = 0; j < n - i - 1; j++)
//		{
//			if (arr[j] < arr[j + 1])
//			{
//				int tmp = arr[j];
//				arr[j] = arr[j + 1];
//				arr[j + 1] = tmp;
//				flag = 0;
//			}
//		}
//		if (flag == 1)
//			break;
//	}
//}
//
//void Print_arr(int arr[], int n)
//{
//	int* p = arr;
//	int i = 0;
//	for (i = 0; i < n; i++)
//	{
//		printf("%d ", *(p + i));
//	}
//}
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10};
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	Bubble_sort(arr, sz);
//	Print_arr(arr, sz);
//	return 0;
//}

#include <assert.h>
//int my_strlen(const char* s)
//{
//	int count = 0;
//	assert(s != NULL);
//	while (*s != '\0')
//	{
//		count++;
//		s++;
//	}
//	return count;
//}
//
//int main()
//{
//	char arr[20] = { "abcdef" };
//	int len = my_strlen(arr);
//	printf("%d\n", len);
//	return 0;
//}

void sort1(int arr[], int n)
{
	int* low = arr;
	int* high = arr + n - 1;
	while (low < high)
	{
		while ((low < high) && (*low) % 2 != 0)
		{
			low++;
		}
		while ((low < high) && (*high) % 2 == 0)
		{
			high--;
		}
		if (low < high)
		{
			int tmp = *low;
			*low = *high;
			*high = tmp;
		}
	}
}

void Print_arr(int arr[], int n)
{
	int* p = arr;
	int i = 0;
	for (i = 0; i < n; i++)
	{
		printf("%d ", *(p + i));
	}
}


int main()
{
	int arr[10] = {0};
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		scanf("%d", &arr[i]);
	}
	int sz = sizeof(arr) / sizeof(arr[0]);
	sort1(arr, sz);
	Print_arr(arr, sz);
	return 0;
}

